#pragma once

#include <vector>
#include <string>

/// Definition of tokens for text parser
class CTextParserDefinitions
{
public:
	/// Registered keyword
	struct Keyword
	{
		std::string		m_keyword;	//!< Match string
		int				m_id;		//!< Keyword ID
	};

public:
	std::vector< Keyword >	m_keywords;		//!< Registered keywords
	std::vector< char >		m_chars;		//!< Recognizable chars
	int						m_tokenString;	//!< CToken representing string value
	int						m_tokenName;	//!< CToken representing name value
	int						m_tokenInteger;	//!< CToken representing integer value
	int						m_tokenFloat;	//!< CToken representing float value
	int						m_tokenIdent;	//!< CToken representing identifier

public:
	CTextParserDefinitions();

	void AddKeyword( const char* keyword, int id );
	void AddChar( char ch );
};